<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	template="../templates/templateAdminPrincipal.xhtml"
	xmlns:p="http://primefaces.org/ui"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:fn="http://java.sun.com/jsp/jstl/functions">

	<ui:define name="windowTitle">
        SAMUPG - Gestión Maestrias
    </ui:define>

	<ui:define name="contenido">
		<h:form id="form" prependId="true">
			<p:tabView id="tvGestionM">
				<p:tab id="tab1" title="Gestión de Maestrias">
					<p:menubar>
						<p:menuitem value="Crear" icon="ui-icon-disk"
							actionListener="#{gestionMaestriasController.initMaestria}"
							update=":form2:display" oncomplete="wdlgMaestria.show()">
							<f:attribute name="tipo" value="0" />
						</p:menuitem>

						<p:menuitem value="Editar" icon="ui-icon-pencil"
							actionListener="#{gestionMaestriasController.initMaestria}"
							update=":form2:display" process="@this,dtMaestrias"
							oncomplete="maestriaInit(xhr, status, args)"
							onstart="return validSelection();">
							<f:attribute name="tipo" value="1" />
						</p:menuitem>

						<p:menuitem value="Actualizar" icon="ui-icon-refresh"
							actionListener="#{gestionMaestriasController.refreshMaestrias}"
							update="dtMaestrias" />

						<p:menuitem value="Eliminar" icon="ui-icon-circle-close"
							actionListener="#{gestionMaestriasController.initMaestria}"
							process="@this,dtMaestrias"
							oncomplete="maestriaDeleteInit(xhr, status, args)"
							onstart="return validSelection();">
							<f:attribute name="tipo" value="2" />
						</p:menuitem>
					</p:menubar>
					<br />
					<p:dataTable id="dtMaestrias" var="maestria"
						widgetVar="wdtMaestrias"
						value="#{gestionMaestriasController.maestrias}"
						rowKey="#{maestria.maestriaId}"
						selection="#{gestionMaestriasController.maestriaSeleccionada}"
						selectionMode="single">

						<p:column headerText="Nombre">
							<h:outputText value="#{fn:substring(maestria.nombre, 0, 30)}" /> ...
            			</p:column>

						<p:column headerText="Mencion">
							<h:outputText value="#{fn:substring(maestria.mencion, 0, 30)}" /> ...
            			</p:column>

						<p:column headerText="Duracion">  
            				#{maestria.duracion}  
        				</p:column>
					</p:dataTable>
				</p:tab>
			</p:tabView>
			<h:inputHidden value="#{gestionMaestriasController.tipo}"
				id="hdnTipo" />
		</h:form>

		<p:dialog id="dlgMaestria" header="Maestria" widgetVar="wdlgMaestria"
			modal="true" resizable="false" width="500" showEffect="clip"
			hideEffect="fold">
			<h:form id="form2" prependId="false">
				<p:messages id="msgsMaestria" />
				<p:menubar>
					<p:menuitem value="Guardar" icon="ui-icon-check"
						actionListener="#{gestionMaestriasController.editMaestria}"
						oncomplete="maestriaEdit(xhr, status, args);"
						update=":form:tvGestionM:dtMaestrias" process="@form" />

					<p:menuitem value="Cancelar" icon="ui-icon-close"
						onclick="wdlgMaestria.hide()" process="@none"/>
				</p:menubar>

				<h:panelGrid id="display" columns="2" cellpadding="4"
					style="font-size:12px;">

					<h:outputText value="Nombre:" />
					<p:inputText
						value="#{gestionMaestriasController.maestriaNueva.nombre}"
						size="50" />

					<h:outputText value="Mención:" />
					<p:inputText
						value="#{gestionMaestriasController.maestriaNueva.mencion}"
						size="50" />

					<h:outputText value="Duración:" />
					<p:inputText
						value="#{gestionMaestriasController.maestriaNueva.duracion}"
						size="50" />

					<h:outputText value="Objetivo general:" />
					<p:inputTextarea
						value="#{gestionMaestriasController.maestriaNueva.objetivoGeneral}"
						rows="10" cols="50" />
				</h:panelGrid>
			</h:form>
		</p:dialog>

		<h:form id="form3">
			<p:confirmDialog id="deleteConfirmation"
				message="¿Seguro que quiere eliminar una maestria?"
				header="Confirmación" severity="alert"
				widgetVar="wdeleteConfirmation">

				<p:commandButton value="Aceptar"
					oncomplete="wdeleteConfirmation.hide()"
					actionListener="#{gestionMaestriasController.editMaestria}"
					update=":form:tvGestionM:dtMaestrias" />

				<p:commandButton value="Cancelar"
					onclick="wdeleteConfirmation.hide()" type="button" 
					process="@this"/>
			</p:confirmDialog>
		</h:form>

		<script type="text/javascript">
			function maestriaInit(xhr, status, args) {
				if (args.isSeleccionado) {
					wdlgMaestria.show();
				} else {
					alert('Debe seleccionar una maestria');
				}
			}

			function maestriaDeleteInit(xhr, status, args) {
				if (args.isSeleccionado) {
					wdeleteConfirmation.show();
				} else {
					alert('Debe seleccionar una maestria');
				}
			}
		
			function maestriaEdit(xhr, status, args) {
				wdlgMaestria.hide();
			}

			function validSelection() {
				if (wdtMaestrias.getSelectedRowsCount() == 0) {
					alert('Debe seleccionar una maestria');
					return false;
				}
			}
		</script>
	</ui:define>
</ui:composition>